package com.session03;

import java.util.Scanner;

public class Test2 {
    public static void main(String[] args) {
/*        通常由两个人玩，一方出数字，一方猜。出数字的人要想好一个没有重复数字的4个数，不能让猜的人知道。
        猜的人就可以开始猜。
        每猜一个数字，出数者就要根据这个数字给出几A几B，其中A前面的数字表示数字正确且位置正确的数的个数，
        而B前的数字表示数字正确而位置不对的数的个数。*/
        int[] num = new int[4];

        //生成4个不重复的0-9的数
        for (int i = 0; i < num.length; i++) {
            num[i] = (int) (Math.random() * 9);
            //System.out.println(num[i]);
            for (int j = 0; j < i; j++) {
                if (num[i] == num[j]) {
                    i--;
                    break;
                }
            }
        }
        //打印4位随机数
        for (int element : num) {
            System.out.print(element + " ");
        }

        System.out.println("");

        //break是跳出整个循环,即执行完break后,整个循环都会终止,
        // 而continue语句用于跳出当前循环,然后继续进行下一轮循环,
        // continue语句同样应用于while循环和for循环中

        while (true) {
            Scanner input = new Scanner(System.in);
            String str = input.nextLine();
            int number = Integer.parseInt(str);
            int a = number % 10; //个位
            int b = number / 10 % 10;  //十位
            int c = number / 10 / 10 % 10;  //百位
            int d = number / 1000;     //千位

            if (a != b && a != c && a != d && b != c && b != d && c != d && str.length() == 4) {
                int lengthA = 0, lengthB = 0;
                int[] temp = {d, c, b, a};
                if (d == num[0] && c == num[1] && b == num[2] && a == num[3]) {
                    System.out.println("4A0B");
                    System.out.println("恭喜你猜对了，游戏结束！");
                    break;
                }
                //计算A
                for (int i = 0; i < num.length; i++) {
                    if (temp[i] == num[i]) {
                        lengthA++;
                    }
                }
                //计算A+B
                for (int i = 0; i < num.length; i++) {
                    for (int j = 0; j < temp.length; j++) {
                        if (num[i] == temp[j]) {
                            lengthB++;
                            //因为数是不重复的，相等之后，便不会相等，没有继续下去的必要
                            break;
                        }
                    }
                }
                System.out.println(lengthA + "A" + (lengthB - lengthA) + "B");
            } else {
                System.out.println("输入数据不合理，请输入不重复的4位数！");
            }
        }
    }
}
